package br.dao;

import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.criterion.Restrictions;

import br.modelo.Cidade;
import br.modelo.Zona;

public class ZonaDAOHibernate implements ZonaDAO{
private Session sessao;

	@Override
	public void salvar(Zona zona) {
		this.sessao.save(zona);

	}
	
	@Override
	public void excluir(Zona zona) {
		this.sessao.delete(zona);

	}
	
	@Override
	public void alterar(Zona zona) {
		this.sessao.update(zona);
	}
	
	@Override
	public Zona pesquisarPorCodigo(Integer id) {
		
		return (Zona) this.sessao.get(Zona.class, id);
	}
		
	@SuppressWarnings("unchecked")
	@Override
	public List<Zona> listar() {
		Criteria lista = sessao.createCriteria(Zona.class);
		return lista.list();
	}
	
	@SuppressWarnings("unchecked")
	@Override
	public List<Zona> listarPorCidade(Cidade cidade) {
		Criteria lista = sessao.createCriteria(Zona.class);
		lista .add(Restrictions.eq("cidade", cidade));
		return lista.list();
	}
	
	// GET e SET
	public Session getSessao() {
		return sessao;
	}

	public void setSessao(Session sessao) {
		this.sessao = sessao;
	}
	

}
